<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <style>
      /*需要知道宽高才行*/
      .center {
        position: absolute;
        top: 0px;
        bottom: 0px;
        left: 0px;
        right: 0px;
        margin: auto;
        width: 200px;
        height: 200px;
      }

      /*未知宽高可以实现水平垂直居中*/
      #center {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
      }

      /*使用flex 布局实现水平垂直居中,缺点要设置body的高度*/
      /*  body{
            display: flex;
            align-items: center;
            justify-content: center;
            height: 500px;
        } */

      /*使用table布局，缺点要设置body 的宽高*/
      /*  body{
            display: table-cell;
            vertical-align: middle;
            text-align: center;
            width: 500px;
            height: 500px;
        } */

      /*知道宽度，使用margin 才会生效*/
      /*知道宽度，实现水平居中*/
      /*  .box{
            margin: 0 auto;
            width: 300px;
        }
 */
      /*使用绝对定位 + transform ,可以填 -150px ,也可以填 -50%*/
      /*  .box{
            width: 300px;
            position: absolute;
            left: 50%;
            transform: translate(-150px);
        } */

      /*使用绝对定位 + transform ,margin 使用 -150px*/
      /*  .box{
            width: 300px;
            position: absolute;
            left: 50%;
            margin-left: -150px;
        }  */

      /*未知宽度，实现水平居中*/
      /*  body{
            text-align: center;
        }

        .box{
            display: inline-block;
        } */

      /*知道高度，实现垂直居中*/
      .box {
        position: absolute;
        height: 100px;
        margin: auto 0;
        top: 0px;
        bottom: 0px;
      }

      /*使用绝对定位 + transform ,可以填 -150px ,也可以填 -50%*/
      /*  .box{
            height: 300px;
            position: absolute;
            top: 50%;
            transform: translate(0,-50%);
            line-height: 300px;
        }  */

      /*
            1.定位 + css3 变化
            2. 定位 + margin , margin auto ,还是 margin 负值
            3. flex 布局
            4. table 布局
            5. margin
            6. text-align
            7. line-height
        */
    </style>
  </head>
  <body>
    <div class="box">
      <h1>我要垂直居中</h1>
    </div>
  </body>
</html>
